﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Ecommerce.Model;
using Ecommerce.Web.Code;
using System.Web.UI.HtmlControls;
using Ecommerce.Pagamento;
using System.Net;
using System.Text;
using System.IO;

namespace Ecommerce.Web
{
    public partial class _Default : BasePage
    {
        private ProdutoModel _produtoModel = new ProdutoModel();
        private CategoriaModel _categoriaModel = new CategoriaModel();


        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                string categoria = Request.QueryString["categoria"];//Page.RouteData.Values["categoria"] as string;
                string busca = Request.QueryString["q"];

                this.CarregarCategorias();

                //if (!string.IsNullOrEmpty(busca))
                //    this.CarregarProdutosBusca(busca);
                //else
                //{
                //    if (string.IsNullOrEmpty(categoria))
                //        this.CarregarProdutos();
                //    else
                //    {
                //        int identificadorCategoria;
                //        if (int.TryParse(categoria, out identificadorCategoria))
                //            this.CarregarProdutos(identificadorCategoria);
                //        else
                //            this.CarregarProdutos();
                //    }
                //}
            }
        }

        private void CarregarCategorias()
        {
            string categoria = Request.QueryString["categoria"];
            List<tb_cat_categoria> lista;

            if (string.IsNullOrEmpty(categoria))
                lista = _categoriaModel.ListarCategoriasHome();
            else
                lista = _categoriaModel.ListarFilhas(int.Parse(categoria));

            if (lista.Count.Equals(0))
            {
                lista = _categoriaModel.ListarCategoriasHome();
            }

            //rptMnuCategoria.DataSource = lista;
            //rptMnuCategoria.DataBind();
        }

        //private void CarregarProdutos(int identificadorCategoria)
        //{
        //    List<int> categorias = _categoriaModel.ListarFilhas(identificadorCategoria).Select(x => x.cat_idt_categoria).ToList();
        //    categorias.Add(identificadorCategoria);
        //    List<tb_pro_produto> produtos = _produtoModel.ListarPorCategoria(categorias.ToArray());

        //    if (produtos.Count.Equals(0))
        //    {
        //        pnProdutoNaoEncontrado.Visible = true;
        //    }
        //    else
        //    {
        //        pnProdutoNaoEncontrado.Visible = false;
        //        dlProdutos.DataSource = produtos;
        //        dlProdutos.DataBind();
        //    }
        //}

        //private void CarregarProdutos()
        //{
        //    List<tb_pro_produto> produtos = _produtoModel.ListarDestaqueHome();
        //    if (produtos.Count > 0)
        //    {
        //        pnProdutoNaoEncontrado.Visible = false;
        //        dlProdutos.DataSource = produtos;
        //        dlProdutos.DataBind();
        //    }
        //    else
        //    {
        //        pnProdutoNaoEncontrado.Visible = true;
        //    }
        //}

        //private void CarregarProdutosBusca(string busca)
        //{
        //    List<tb_pro_produto> produtos = _produtoModel.ListarPorNome(busca);
        //    if (produtos.Count > 0)
        //    {
        //        pnProdutoNaoEncontrado.Visible = false;
        //        dlProdutos.DataSource = produtos;
        //        dlProdutos.DataBind();
        //    }
        //    else
        //    {
        //        pnProdutoNaoEncontrado.Visible = true;
        //    }
        //}

        //protected void dlProdutos_ItemDataBound(object sender, DataListItemEventArgs e)
        //{
        //    if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
        //    {
        //        tb_pro_produto item = (tb_pro_produto)e.Item.DataItem;

        //        HtmlGenericControl dvNomeProduto = (HtmlGenericControl)e.Item.FindControl("dvNomeProduto");
        //        HtmlGenericControl dvPrecoProduto = (HtmlGenericControl)e.Item.FindControl("dvPrecoProduto");
        //        HyperLink hlDetalhesProduto = (HyperLink)e.Item.FindControl("hlDetalhesProduto");
        //        Image imgProduto = (Image)e.Item.FindControl("imgProduto");
        //        HyperLink hlBotaoDetalhesProduto = (HyperLink)e.Item.FindControl("hlBotaoDetalhesProduto");

        //        dvNomeProduto.InnerText = item.pro_nom_produto;

        //        if (this.TipoUsuarioLogado == TipoPessoa.PFI || this.TipoUsuarioLogado == TipoPessoa.PJU)
        //            dvPrecoProduto.InnerText = item.pro_vlr_preco_consumidor.ToString("c");
        //        else
        //            dvPrecoProduto.InnerText = item.pro_vlr_preco_revenda.ToString("c");

        //        hlDetalhesProduto.NavigateUrl = "~/Produtos/Detalhes.aspx?codigo=" + Server.UrlEncode(item.pro_cod_produto);
        //        hlBotaoDetalhesProduto.NavigateUrl = hlDetalhesProduto.NavigateUrl;


        //        tb_ipr_imagem_produto imagemProduto = item.tb_ipr_imagem_produto.Where(x => x.ipr_num_ordem_imagem.Equals(1)).FirstOrDefault();

        //        if (imagemProduto != null)
        //            imgProduto.ImageUrl = imagemProduto.ipr_des_caminho_virtual;
        //        else
        //            imgProduto.ImageUrl = "~/images/imagem_nao_disp_home.jpg";

        //    }
        //}

        protected void rptMnuCategoria_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
            {
                tb_cat_categoria item = (tb_cat_categoria)e.Item.DataItem;

                HyperLink hlMenu = (HyperLink)e.Item.FindControl("hlMenu");
                hlMenu.NavigateUrl = "~/default.aspx?categoria=" + item.cat_idt_categoria;
                hlMenu.Text = item.cat_des_categoria;
            }
        }

    }
}
